package com.gxd.business.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.gxd.business.domain.Customer;
import com.gxd.business.domain.dto.TransferCustomerDto;
import com.gxd.business.domain.qco.CustomerQco;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletResponse;
import java.util.List;

/**
 * @author gxd
 * @since 2025/6/13
 */
public interface CustomerService extends IService<Customer> {

    /**
     * 分页列表-资源客户列表
     * @param customerQco 资源客户查询条件
     * @return 资源客户列表
     */
    List<Customer> pageList(CustomerQco customerQco);

    /**
     * 详情信息-根据Id获取资源客户详情信息
     * @param id 资源客户Id
     * @return 资源客户
     */
    Customer getDetailById(String id);

    /**
     * 添加或修改-资源客户
     * @param customer 资源实体
     * @return 资源客户
     */
    Customer addOrEdit(Customer customer);

    /**
     * 删除-资源客户（支持批量）
     * @param ids 资源客户Id（多个需要逗号分隔）
     * @return 结果
     */
    boolean deleteById(String ids);

    /**
     * 自动分配
     * @return 结果
     */
    boolean automaticAssign();

    /**
     * 导入-资源客户
     * @param file 文件
     * @return 解雇
     */
    boolean importData(MultipartFile file);

    /**
     * 导出-资源客户
     * @param response 响应
     * @param customerQco 资源客户查询条件
     */
    void export(HttpServletResponse response, CustomerQco customerQco);

    /**
     * 修改-公共客户资源|我的客户管理
     * @param customer 资源客户信息
     * @return 资源客户信息
     */
    Customer edit(Customer customer);

    /**
     * 查询分配三天没加联系方式的资源客户Id集合
     * @return 资源客户id集合
     */
    List<String> selectDiff3DaysIdList();

    /**
     * 转移客户
     * @param transferCustomerDto 转移客户dto
     * @return 结果
     */
    boolean transferCustomer(TransferCustomerDto transferCustomerDto);
}
